
#ifndef _LIREFICHIER_H
#define _LIREFICHIER_H

/**
 * @file lireFichier.h
 * @brief contient les fonctions pour le module lireFichier 
 * @details liste des fonctions pour le module lireFichier
 * @version 1.0
 * @date 2013/05/16
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include <assert.h>
#include <time.h>
#include <malloc.h>

/**
* @fn fichierInit(const char *)
* @brief Initialise un fichier
* @param [in] char * pointeur sur chaine de caractere.
* @return FILE* pointeur sur fichier txt.
*/
FILE * fichierInit(const char *);
/**
* @fn nbrLigneFichier(FILE *)
* @brief Compte le nombre de ligne d'un fichier
* @param [in] FILE* pointeur sur fichier txt.
* @return unsigned int entier signé.
*/
unsigned int nbrLigneFichier(FILE *);
/**
* @fn lireCaractere(FILE *, const int)
* @brief Afficher à l'écran la ligne du fichier demandé
* @param [in] FILE* pointeur sur fichier txt.
* @param [in] int entier
* @return char caractere
*/
char lireCaractere(FILE *, const int);
/**
* @fn posDebutLigne(FILE *, const int)
* @brief Renvoie la position du 1er caractère de la ligne demandé
* @param [in] FILE* pointeur sur fichier txt.
* @param [in] int entier
* @return int entier
*/
int posDebutLigne(FILE *, const int);
/**
* @fn posFinLigne(FILE *, const int)
* @brief Renvoie la position du dernier caractère de la ligne demandé
* @param [in] FILE* pointeur sur fichier txt.
* @param [in] int entier
* @return int entier
*/
int posFinLigne(FILE *, const int);
/**
* @fn caractereFichierNum(FILE *, const long int)
* @brief Renvoie le caractère à la position demandé
* @param [in] FILE* pointeur sur fichier txt.
* @param long int partie entiere d'un floatant.
* @return char un caractere.
*/
char caractereFichierNum(FILE *, const long int);
/**
* @fn suppLigneVide(const char *)
* @brief Supprime les lignes vides d'un fichier
* @param [in] char * pointeur sur chaine de caractere.
* @return void
*/
void suppLigneVide(const char *);
/**
* @fn lireLigne(FILE *, const int, char*)
* @brief Retourne la ligne demandé en chaîne de caractère
* @param [in] FILE* pointeur sur fichier txt.
* @param [in] int entier
* @param [in] char * pointeur sur chaine de caractere.
* @return void
*/
void lireLigne(FILE *, const int, char*);
/**
* @fn lireFichTestRegression()
 * @brief lireFichTestRegression fais appel a toutes les fonctions du module lireFichier et effectue des Tests.
 * @return void
*/
void lireFichTestRegression();
#endif
